/**
 *  @Package: com.yidu.OrderingProject
 *  @author: Administrator
 *  @date: 2018年7月18日 上午9:12:38
 */
package com.yidu.drug.action;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;


/**
 * 类的描述 文件上传处理层
 * @author 祝浪
 * @date 2018年7月18日
 */
@Controller
@RequestMapping("/upload")
public class UploadFileAction {
	/**
	 * 上传单文件
	 * @param servletRequest 请求
	 * @param file 文件
	 * @return 集合
	 * @throws IOException 异常
	 */
	@RequestMapping(value = "/uploadFile" , method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object>  upload(HttpServletRequest servletRequest,
                         @RequestParam("file") MultipartFile file
                         ) throws IOException {

        //如果文件内容不为空，则写入上传路径
        if (!file.isEmpty()) {
        	//获取上传路径
			String path=servletRequest.getServletContext().getRealPath("upload");
			//获取文件后缀名
			String hz=file.getOriginalFilename().split("\\.")[1];
			//随机生成文件名
			String fileName=UUID.randomUUID().toString().replaceAll("-", "")+"."+hz;
			System.out.println(fileName);
            //将上传文件保存到一个目标文档中
            File file1 = new File(path+"/"+fileName);
            System.out.println(path);
           //判断路径是否存在，没有就创建一个
            if (!file1.getParentFile().exists()) {
            	file1.getParentFile().mkdirs();
            }
            file.transferTo(file1);
            Map<String, Object> res = new HashMap<>();
            //返回的是一个url对象
            res.put("url", "upload"+"/"+fileName);
            return res;
            
        } else {
            return null;
        }

    }
}
